Limiting power dissipation is one of the major goals when designing a microprocessor. Microprocessor power dissipation has substantially increased with the advent of new semiconductor technologies, increased density and complexity, and higher clock speeds.
Many current microprocessor designs have encountered problems where localized heating has forced the idling of particular portions (or functional units) of the microprocessor chip to prevent potentially fatal destruction. When this happens, overall microprocessor chip throughput is drastically reduced since the microprocessor must wait to perform the operation of the idled functional unit until any localized heating effect is not a threat.
Overall microprocessor chip throughput is measured in "SPEC" marks. The SPEC marks of a particular microprocessor are determined by running a number of standard programs and evaluating the microprocessor's performance, thus resulting in a given microprocessor throughput. As will be appreciated, shutting off functional units due to localized heating problems reduces the availability of those units to perform calculations or computations, thereby reducing the microprocessor throughput.
Prior attempts to combat localized heating have centered around the placement of functional units within the integrated circuit and powering off (disabling) units that are not required for certain operations. Strategically placed units may alleviate some localized heating problems, however, as chip densities increase and the performance of computational-intense programs and operations require functional units to operate relatively non-stop, placement or layout on the chip has little or no effect. Typical implementations for powering off units involve a central controlling unit that disables functional units not required based on incoming/upcoming instructions or operations.
Other attempts at improving SPEC throughput have focussed on adding multiple functional units. For instance, fixed point (or floating point) computational SPEC marks may be improved by adding a second fixed point functional unit to the microprocessor design. However, no consideration has been given as to which functional unit, in the case of multiple units of the same nature, to shut off or disable. Some attempts have simply used each of the functional units in some alternating fashion. Even with such techniques, localized heating problems with these functional units remains a problem due to the lack of consideration of actual power dissipation (or activity) within the neighborhood (area) of each functional unit.
Accordingly, there exists a need for an apparatus and method for decreasing localized heating problems associated with functional units within a microprocessor. Further, a need exists for an apparatus and method that provides information about the power dissipation in, and/or around, a given functional unit. In addition, an apparatus and method is needed for the logical steering of microprocessor instructions (or operations, functions) to reduce the possibility of any catastrophic failure(s) due to overheating, to increase microprocessor chip reliability, and to decrease overall average microprocessor chip power dissipation. Thus, logical steering of instructions to different functional units within separate neighborhoods is needed to reduce localized heating effects and increase microprocessor throughput.